package com.course.action;

import java.io.IOException;

import java.lang.reflect.InvocationTargetException;
import java.util.Map;


import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;

import com.course.bean.CourseTo;

import com.course.delegate.CourseMgrDelegate;
import com.course.exception.ConnectionException;
import com.course.exception.LoginException;
import com.course.formbean.CourseFormBean;
import com.course.util.UtilConstants;

public class AddCourseAction extends HttpServlet {

	private static final long serialVersionUID = 1L;
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
          doPost(request, response);
		}
public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		    CourseFormBean cb=new CourseFormBean();
				Map map=request.getParameterMap();
			try {
				BeanUtils.populate(cb, map);
			} catch (IllegalAccessException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (InvocationTargetException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
				
				
			}String path="";
		         CourseTo cto=new CourseTo(cb);
		         boolean flag=false;
		         try{
				   try{
				       flag= new CourseMgrDelegate().insertCourse(cto);
				  }
				  catch (LoginException e) {
					e.printStackTrace();
				}
				  catch (ConnectionException e) {
					e.printStackTrace();
				}
				   if(flag==true){
					   request.setAttribute("status", UtilConstants._ADD_COURSE_SUCCESS);
					  path=UtilConstants._ADD_COURSE_HOME;
					 }
				  else{
					  request.setAttribute("status", UtilConstants._ADD_COURSE_FAILED);
					  path=UtilConstants._ADD_COURSE_HOME;
					  }}
			  catch (Exception e) {
				request.setAttribute("status", UtilConstants._INVALIED_DATA);
				  path=UtilConstants._ADD_COURSE_HOME;
				  e.printStackTrace();
				  }
			RequestDispatcher rd=request.getRequestDispatcher(path);
				rd.forward(request,response);
				}
}
